/**
*   @file    Dbgu.c
*   MRTB-05 Project
*
*   @{
*/
/*==================================================================================================
*   Project              : MRTB-05
*   Platform             : SBC6000X, AT91SAM9261S
*   Build Version        : Keil uVision 4.53
*
*   (c) Copyright VNE Corporation
*   All Rights Reserved.
==================================================================================================*/

/*==================================================================================================
*                                        INCLUDE FILES
==================================================================================================*/
#include "Rte.h"
#include "stdio.h"
#include "stdlib.h"
#include "AT91SAM9261.h"

/*==================================================================================================
*                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
==================================================================================================*/


/*==================================================================================================
*                                       LOCAL MACROS
==================================================================================================*/


/*==================================================================================================
*                                      LOCAL CONSTANTS
==================================================================================================*/


/*==================================================================================================
*                                      LOCAL VARIABLES
==================================================================================================*/


/*==================================================================================================
*                                      GLOBAL CONSTANTS
==================================================================================================*/


/*==================================================================================================
*                                      GLOBAL VARIABLES
==================================================================================================*/
/**
* @{
* @brief Exclusive for Modules
*/
#ifdef RL_OS_ENVIRONMENT
#if (RL_OS_ENVIRONMENT == STD_ON)
volatile OS_ID DBGU_EXCLUSIVEAREA_00;

volatile OS_ID UART_EXCLUSIVEAREA_00;
volatile OS_ID UART_EXCLUSIVEAREA_01;
volatile OS_ID UART_EXCLUSIVEAREA_02;

#endif
#endif
/*==================================================================================================
*                                       GLOBAL FUNCTIONS
==================================================================================================*/
void RteInit(void)
{
#ifdef RL_OS_ENVIRONMENT
#if (RL_OS_ENVIRONMENT == STD_ON)
    os_mut_init(DBGU_EXCLUSIVEAREA_00);

    os_mut_init(UART_EXCLUSIVEAREA_00);
    os_mut_init(UART_EXCLUSIVEAREA_01);
    os_mut_init(UART_EXCLUSIVEAREA_02);
#endif
#endif
}

void SchM_Enter_DBGU_EXCLUSIVE_AREA_00(void)
{
#ifdef RL_OS_ENVIRONMENT
#if (RL_OS_ENVIRONMENT == STD_ON)
    os_mut_wait(DBGU_EXCLUSIVEAREA_00);
#endif
#endif
}

void SchM_Enter_UART_EXCLUSIVE_AREA_00(void)
{
#ifdef RL_OS_ENVIRONMENT
#if (RL_OS_ENVIRONMENT == STD_ON)
    os_mut_wait(UART_EXCLUSIVEAREA_00);
#endif
#endif
}

void SchM_Enter_UART_EXCLUSIVE_AREA_01(void)
{
#ifdef RL_OS_ENVIRONMENT
#if (RL_OS_ENVIRONMENT == STD_ON)
    os_mut_wait(UART_EXCLUSIVEAREA_01);
#endif
#endif
}

void SchM_Enter_UART_EXCLUSIVE_AREA_02(void)
{
#ifdef RL_OS_ENVIRONMENT
#if (RL_OS_ENVIRONMENT == STD_ON)
    os_mut_wait(UART_EXCLUSIVEAREA_02);
#endif
#endif
}

void SchM_Exit_DBGU_EXCLUSIVE_AREA_00(void)
{
#ifdef RL_OS_ENVIRONMENT
#if (RL_OS_ENVIRONMENT == STD_ON)
    os_mut_release(DBGU_EXCLUSIVEAREA_00);
#endif
#endif
}

void SchM_Exit_UART_EXCLUSIVE_AREA_00(void)
{
#ifdef RL_OS_ENVIRONMENT
#if (RL_OS_ENVIRONMENT == STD_ON)
    os_mut_release(UART_EXCLUSIVEAREA_00);
#endif
#endif
}

void SchM_Exit_UART_EXCLUSIVE_AREA_01(void)
{
#ifdef RL_OS_ENVIRONMENT
#if (RL_OS_ENVIRONMENT == STD_ON)
    os_mut_release(UART_EXCLUSIVEAREA_01);
#endif
#endif
}

void SchM_Exit_UART_EXCLUSIVE_AREA_02(void)
{
#ifdef RL_OS_ENVIRONMENT
#if (RL_OS_ENVIRONMENT == STD_ON)
    os_mut_release(UART_EXCLUSIVEAREA_02);
#endif
#endif
}

/** @} */

